#pragma once

#include <memory>

namespace jlh
{
	enum MediaType
	{
		PCMA = 8,
		H264 = 96,
		AAC = 37,
		H265 = 265,
		NONE
	};

	enum FrameType
	{
		VIDEO_FRAME_I = 0x01,
		VIDEO_FRAME_P = 0x02,
		VIDEO_FRAME_B = 0x03,
		AUDIO_FRAME = 0x11
	};

	struct AVFrame
	{
		AVFrame(uint32_t size = 0)
			: buffer(new uint8_t[size+1])
		{
			this->size = size;
		}

		std::shared_ptr<uint8_t> buffer;	
		uint32_t size	= 0;
		uint8_t type	= 0;
		uint32_t timestamp = 0;
	};

#define MAX_MEDIA_CHANNEL 2

	enum MediaChannelId
	{
		channel_0,
		channel_1
	};

	typedef uint32_t MediaSessionId;
}

